HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux WebLive 5.15.0-79-generic #86-Ubuntu SMP Mon Jul 10 16:07:21 UTC 2023 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wpprotonperinggit/wp-content/plugins/wp-cardealer/assets/js/ajax-file-upload.js
(function ($) {
    "use strict";

    function WPCDAjaxFileUpload() {
        var self = this;
        self.init();
    };

    WPCDAjaxFileUpload.prototype = {
        init: function() {
            var self = this;

            $('.wp-cardealer-file-upload').each(function(){
                self.upload_file($(this));
            });
            $(document).on('click', '.cmb-add-group-row', function(e) {
                setTimeout(function(){
                    $('.wp-cardealer-file-upload').each(function(){
                        self.upload_file($(this));
                    });
                }, 50);
                
            });
            $(document).on('click', '.wp-cardealer-uploaded-files .wp-cardealer-remove-uploaded-file', function(e) {
                e.preventDefault();
                var $file_field = $(this).closest('.cmb-type-wp-cardealer-file').find('input.wp-cardealer-file-upload');
                if ( typeof $file_field.data( 'file_limit_left' ) !== 'undefined' ) {
                    var fileLimitLeft = parseInt( $file_field.data( 'file_limit_left' ), 10 );
                    $file_field.data( 'file_limit_left', fileLimitLeft + 1 );
                }
                $(this).closest('.wp-cardealer-uploaded-file').remove();
            });
        },
        upload_file: function($element) {
            $element.fileupload({
                dataType: 'json',
                dropZone: $(this),
                url: wp_cardealer_file_upload.ajax_url_endpoint.toString().replace( '%%endpoint%%', 'wp_cardealer_ajax_upload_file' ),
                maxNumberOfFiles: 1,
                formData: {
                    script: true,
                    action: 'wp_cardealer_ajax_upload_file',
                    allow_types: $element.data('mime_types'),
                },
                add: function (e, data) {
                    var $file_field     = $( this );
                    var $form           = $file_field.closest( 'form' );
                    var $uploaded_files = $file_field.parent().find('.wp-cardealer-uploaded-files');
                    var uploadErrors    = [];
                    var fileLimitLeft    = false;
                    var fileLimit        = parseInt( $file_field.data( 'file_limit' ), 10 );

                    if ( typeof $file_field.data( 'file_limit_left' ) !== 'undefined' ) {
                        fileLimitLeft = parseInt( $file_field.data( 'file_limit_left' ), 10 );
                    } else if ( typeof fileLimit !== 'undefined' ) {
                        var currentFiles = parseInt( $uploaded_files.children( '.wp-cardealer-uploaded-file' ).length, 10);
                        fileLimitLeft = fileLimit - currentFiles;
                        $file_field.data( 'file_limit_left', fileLimitLeft );
                    }

                    if ( false !== fileLimitLeft && fileLimitLeft <= 0 ) {
                        var message = 'Exceeded upload limit';
                        if( $file_field.data( 'file_limit_message' ) ) {
                            message = $file_field.data( 'file_limit_message' );
                        } else if ( typeof wp_cardealer_file_upload !== 'undefined' ) {
                            message = wp_cardealer_file_upload.i18n_over_upload_limit;
                        }
                        message = message.replace( '%d', fileLimit );

                        uploadErrors.push( message );
                    }

                    // Validate type
                    var allowed_types = $(this).data('file_types');

                    if ( allowed_types ) {
                        var acceptFileTypes = new RegExp( '(\.|\/)(' + allowed_types + ')$', 'i' );

                        if ( data.originalFiles[0].name.length && ! acceptFileTypes.test( data.originalFiles[0].name ) ) {
                            uploadErrors.push( wp_cardealer_file_upload.i18n_invalid_file_type + ' ' + allowed_types );
                        }
                    }

                    if ( uploadErrors.length > 0 ) {
                        window.alert( uploadErrors.join( '\n' ) );
                    } else {
                        if ( false !== fileLimitLeft ) {
                            $file_field.data( 'file_limit_left', fileLimitLeft - 1 );
                        }
                        $form.find(':input[type="submit"]').attr( 'disabled', 'disabled' );
                        data.context = $('<progress value="" max="100"></progress>').appendTo( $uploaded_files );
                        data.submit();
                    }
                },
                progress: function (e, data) {
                    var progress        = parseInt(data.loaded / data.total * 100, 10);
                    data.context.val( progress );
                },
                fail: function (e, data) {
                    var $file_field     = $( this );
                    var $form           = $file_field.closest( 'form' );

                    if ( data.errorThrown ) {
                        window.alert( data.errorThrown );
                    }

                    data.context.remove();

                    $form.find(':input[type="submit"]').removeAttr( 'disabled' );
                },
                done: function (e, data) {
                    var $file_field     = $( this );
                    var $form           = $file_field.closest( 'form' );
                    var $uploaded_files = $file_field.parent().find('.wp-cardealer-uploaded-files');
                    var multiple        = $file_field.attr( 'multiple' ) ? 1 : 0;
                    var image_types     = [ 'jpg', 'gif', 'png', 'jpeg', 'jpe' ];

                    $file_field.val("");

                    data.context.remove();

                    $.each(data.result.files, function(index, file) {
                        if ( file.error ) {
                            window.alert( file.error );
                        } else {
                            var html;
                            if ( $.inArray( file.extension, image_types ) >= 0 ) {
                                html = $.parseHTML( wp_cardealer_file_upload.js_field_html_img );
                                $( html ).find('.wp-cardealer-uploaded-file-preview img').attr( 'src', file.url );
                            } else {
                                html = $.parseHTML( wp_cardealer_file_upload.js_field_html );
                                $( html ).find('.wp-cardealer-uploaded-file-name code').text( file.name );
                            }

                            $( html ).find('.input-text').val( file.url );
                            $( html ).find('.input-text').attr( 'name', 'current_' + $file_field.attr( 'name' ) );

                            if ( multiple ) {
                                $uploaded_files.append( html );
                            } else {
                                $uploaded_files.html( html );
                            }
                        }
                    });

                    $form.find(':input[type="submit"]').removeAttr( 'disabled' );
                }
            });
        }
    }

    $.wpcdAjaxFileUpload = WPCDAjaxFileUpload.prototype;
    
    $(document).ready(function() {
        // Initialize script
        new WPCDAjaxFileUpload();

    });

})(jQuery);